home *** CD-ROM | disk | FTP | other *** search
- XCOMM $XdotOrg: xc/config/cf/darwin.cf,v 1.4.2.1 2004/12/15 04:53:05 gisburn Exp $
- XCOMM platform: $XFree86: xc/config/cf/darwin.cf,v 1.50 2004/01/20 23:54:50 torrey Exp $
-
- /* Darwin / Mac OS X configuration by John Carmack <johnc@idsoftware.com> */
-
- /* imake determines the default values by parsing uname */
- #ifndef OSName
- #define OSName DefaultOSName
- #endif
- #ifndef OSVendor
- #define OSVendor Apple Computer, Inc.
- #endif
- #ifndef OSMajorVersion
- #define OSMajorVersion DefaultOSMajorVersion
- #endif
- #ifndef OSMinorVersion
- #define OSMinorVersion DefaultOSMinorVersion
- #endif
- #ifndef OSTeenyVersion
- #define OSTeenyVersion DefaultOSTeenyVersion
- #endif
-
- XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
-
- /*
- * Define the operating system's capabilities
- */
- #define HasSnprintf YES
- #define HasPutenv YES
- #define HasBSD44Sockets YES
- #define Malloc0ReturnsNull NO
- #define HasShadowPasswd NO
- #define HasUsableFileMmap YES
- #define HasZlib YES
- #ifndef HasShm
- # define HasShm YES
- #endif
- #define HasNdbm YES
- #if OSMajorVersion >= 6
- # define HasNCurses YES
- # define HasArc4Random YES
- # define HasGetIfAddrs YES
- # define HasStrlcat YES
- #else
- # define HasBasename NO
- # define HasNCurses NO
- #endif
- #ifndef HasGroff
- # define HasGroff YES
- #endif
- #ifndef HasGcc3
- # define HasGcc3 NO
- #endif
-
- /* Older versions don't really support IPv6, but #define AF_INET6. */
- #if OSMajorVersion < 6
- # define BuildIPv6 NO
- #endif
-
- /* Thread support */
- #define HasPosixThreads YES
- #define SystemMTDefines -D_REENTRANT
- #if OSMajorVersion >= 6
- # define HasThreadSafeAPI YES
- # define MTSafeAPIDefines -DXUSE_MTSAFE_API -DXNO_MTSAFE_UNISTDAPI
- #else
- # define HasThreadSafeAPI NO
- # define MTSafeAPIDefines -DXOS_USE_MTSAFE_NETDBAPI
- #endif
-
- /* Libtool on Darwin always uses minor numbers */
- #define LibtoolMinorVersions YES
-
- /* The most common file system, HFS+, is not case sensitive. */
- #ifndef CaseSensitiveFileSystem
- # define CaseSensitiveFileSystem NO
- #endif
-
- /*
- * This enables some settings for developers.
- */
- #ifndef XFree86Devel
- # define XFree86Devel NO
- #endif
-
- /*
- * This enables Quartz compatibility.
- * Turn off to build on raw Darwin systems.
- */
- #ifndef DarwinQuartzSupport
- # define DarwinQuartzSupport YES
- #endif
-
- #if DarwinQuartzSupport
-
- # if OSMajorVersion >= 7
- PROJ_BUILD = xcodebuild
- # else
- PROJ_BUILD = pbxbuild
- # endif
-
- # ifndef HasXplugin
- # if OSMajorVersion >= 7
- # define HasXplugin YES
- # else
- # define HasXplugin NO
- # endif
- # endif
-
- # if HasXplugin
- # ifndef XpLibDir
- # define XpLibDir /usr/lib
- # endif
- # ifndef XpIncDir
- # define XpIncDir $(SERVERSRC)/hw/darwin/quartz/xpr
- # endif
- XPLIBDIR = XpLibDir
- XPINCDIR = XpIncDir
- # define XpluginLibrary Concat(-L,$(XPLIBDIR)) -lXplugin
- # else
- # define XpluginLibrary /**/
- # endif
-
- # ifndef BuildAppleDRI
- # if HasXplugin
- # define BuildAppleDRI YES
- # else
- # define BuildAppleDRI NO
- # endif
- # endif
-
- # if BuildAppleDRI
- # define GlxExtraDefines -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL GlxArchDefines
- # endif
-
- # define BuildRootless YES
- #define BuildAppleWMLibrary YES
-
- #endif /* DarwinQuartzSupport */
-
- /* we don't need -lm */
- #define MathLibrary /**/
-
- #define TermcapLibrary -lcurses
- #define SetTtyGroup YES /* for xterm */
-
- /* we don't have a dbm library */
- #define DBMLibrary /**/
-
- #define MkdirHierCmd mkdir -p
-
- /* Use flex -l for compatibility with various versions of flex. */
- #ifndef LexCmd
- # define LexCmd flex -l
- #endif
- #define HasFlex YES
-
- /*
- * Our cpp isn't in /lib/cpp and early versions don't like -undef.
- * The default cpp-3.3 that ships with Panther inserts spurious #pragmas,
- * so we use the 3.1-based version.
- */
- #if OSMajorVersion >= 7
- # define CppCmd /usr/bin/cpp3
- # define StandardCppOptions -traditional -D__GNUC__
- #else
- # define CppCmd /usr/bin/cpp
- #endif
- #if HasGcc3
- # define RawCppCmd CppCmd -undef
- #else
- # define RawCppCmd CppCmd
- #endif
-
- /* we have a gcc compatible compiler, but its not called gcc */
- #define CcCmd /usr/bin/cc
- #define CplusplusCmd /usr/bin/c++
-
- /* default flags to pass to cc */
- #ifndef DefaultCCOptions
- #if XFree86Devel
- # define DefaultCCOptions -Wall -Wpointer-arith -Wstrict-prototypes \
- -Wmissing-prototypes -Wmissing-declarations \
- -Wredundant-decls -Wnested-externs \
- -no-cpp-precomp
- #else
- # define DefaultCCOptions -Wall -Wpointer-arith -no-cpp-precomp
- #endif
- #endif
-
- /* flags to pass to cc when building libraries */
- #ifndef LibraryCCOptions
- # define LibraryCCOptions DefaultCCOptions -fno-common
- #endif
-
- /* The cr implementation does not build with NEED_SCREEN_REGIONS,
- so play it safe. */
- #ifndef ServerCCOptions
- # define ServerCCOptions DefaultCCOptions -UNEED_SCREEN_REGIONS
- #endif
-
- #ifdef PpcDarwinArchitecture
- # define DarwinMachineDefines -D__powerpc__
- # if HasGcc3
- # define OptimizedCDebugFlags -Os
- # else
- # define OptimizedCDebugFlags -O2
- # endif
- # define ByteOrder X_BIG_ENDIAN
- #endif /* PpcDarwinArchitecture */
-
- #ifdef i386DarwinArchitecture
- # define DarwinMachineDefines -D__i386__
- # if HasGcc3
- # define OptimizedCDebugFlags -Os
- # else
- # define OptimizedCDebugFlags -O2 -fno-strength-reduce
- # endif
- # define ByteOrder X_LITTLE_ENDIAN
- #endif /* i386DarwinArchitecture */
-
- #if OSMajorVersion < 7
- # define DarwinLocaleDefines -DX_LOCALE
- #else
- # define DarwinLocaleDefines /**/
- # define XawI18nDefines -DHAS_WCHAR_H -DHAS_WCTYPE_H -DNO_WIDEC_H
- #endif
-
- /*
- * __DARWIN__ will be used for platform specific #ifdefs that can't
- * be handled by existing X defines.
- *
- * Darwin's alloca() seg faults (rather than returning NULL) on failed
- * allocations, so we can't use it.
- */
- #define StandardDefines DarwinMachineDefines -D__DARWIN__ \
- -DNO_ALLOCA -DCSRG_BASED DarwinLocaleDefines
-
- /*
- * Set this to NO to just build the client libs, which should work without
- * having to write any platform specific code.
- */
- #ifndef BuildServer
- # define BuildServer YES
-
- /* our custom X server */
- # define XDarwinServer YES
- #endif
-
- /* Thanks to the IOKit, the X server does not have to be SetUID. */
- #ifndef InstallXserverSetUID
- # define InstallXserverSetUID NO
- #endif
-
- /* Allow Xtrans to work with non-SetUID server. */
- #ifndef XtransFailSoft
- # define XtransFailSoft YES
- #endif
-
- /* disable XKB by default as it can cause problems */
- #define DfltDisableXKB YES
-
- /* no direct graphics extension */
- #define BuildXF86DGA NO
-
- /* Support for tablets and other non-standard input devices */
- #ifndef BuildXInputExt
- # define BuildXInputExt YES
- #endif
- #define BuildXInputLib YES
-
- /* no Display Power Management extension */
- #define BuildDPMS NO
-
- /* no XFree86-Misc extension */
- #define BuildXF86MiscExt NO
-
- /* no XFree86-VidMode extension */
- #define BuildXF86VidModeExt NO
-
- #define BuildLibPathVar DYLD_LIBRARY_PATH
-
- /* include rules to build shared libraries */
- #include <darwinLib.rules>
-
- /*
- * BundleProgramTarget - Generate rules for compiling, linking and
- * installing a bundle executable.
- */
- #ifndef BundleProgramTarget
- #define BundleProgramTarget(program,loader,subdirs,objs,deplib,syslib,dstdir) @@\
- @@\
- AllTarget(program) @@\
- @@\
- program: loader subdirs objs deplib @@\
- RemoveTargetProgram($@) @@\
- LinkRule($@,-bundle $(LDOPTIONS),objs,deplib $(LDLIBS) syslib -bundle_loader loader) @@\
- @@\
- InstallProgram(program,dstdir/program.bundle/Contents/MacOS) @@\
- @@\
- clean:: @@\
- RemoveFile(program)
- #endif /* BundleProgramTarget */
-
- /*
- * Darwin specific Imake Config files
- */
- #ifndef LocalConfigFiles
- #define LocalConfigFiles \
- darwinLib.rules \
- darwinLib.tmpl
- #endif
-
- /* include all the XFree86 rules */
- #include <xorg.cf>
-
-